package com.gzj.environment.module.collectData.message.impl;

import com.gzj.environment.constant.CollectDataConstant;
import com.gzj.environment.module.collectData.context.ClientContext;
import com.gzj.environment.module.collectData.message.Message;
import io.netty.channel.ChannelHandlerContext;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class VersionMessage implements Message {
    /**
     * 消息类型
     *
     * @return
     */
    @Override
    public String messageType() {
        return CollectDataConstant.MESSAGE_TYPE_IS_VERSION;
    }

    /**
     * 处理消息
     * @param ctx netty客户端通道信息
     * @param message 消息内容
     */
    @Override
    public void handle(ChannelHandlerContext ctx, String message) {
        log.info("处理ip为{}的版本消息，消息内容为{}", ctx.channel().remoteAddress(), message);
        String version = message.substring(4);
        // 将其加入ClientContext中的versionMap
        ClientContext.addClientVersion(ctx.channel().remoteAddress().toString(), version);
    }
}
